package main

import (
	"fmt"
	"math/rand"
	"time"
)

// 第一题方法一：把已经点名的同学名字组成字符串，使用字符串的contains函数判断，如果点过名就重新生成随机数下标
//func main() {
//
//	var name = [51]string{
//		"theshy",
//		"rookie",
//		"jkl",
//		"ning",
//		"baolan",
//		"xiaohu",
//		"crisp",
//		"light",
//		"weiwei",
//		"bin",
//		"xun",
//		"elk",
//		"on",
//		"369",
//		"tian",
//		"meiko",
//		"uzi",
//		"huangfeng",
//		"faker",
//		"showmaker",
//		"zeus",
//		"deft",
//		"conyon",
//		"doran",
//		"penunt",
//		"chovy",
//		"ruler",
//		"berry",
//		"oner",
//		"keria",
//		"viper",
//		"kingeen",
//		"zeka",
//		"clid",
//		"bdd",
//		"cuzz",
//		"aiming",
//		"nuosho",
//		"kanavi",
//		"scout",
//		"flander",
//		"jiejie",
//		"ming",
//		"breath",
//		"wei",
//		"lwx",
//		"letme",
//		"zitai",
//		"leave",
//		"zdz",
//		"xiaohao",
//	}
//	var selection string
//	var selected = ""
//	for true {
//		fmt.Println("按q退出系统，其他任意键开始点名！")
//		fmt.Scan(&selection)
//		if selection != "q" {
//		label:
//			rand.Seed(time.Now().UnixNano())
//			x := rand.Intn(len(name) - 1)
//			if strings.Contains(selected, name[x]) {
//				//x := rand.Intn(len(name) - 1)
//				goto label //该名字在字符串中，重新生成随机数下标
//			} else {
//				fmt.Println("这次被点名的同学是：", name[x])
//				selected = selected + ":" + name[x]  //把点过名的同学加入字符串
//			}
//		}
//		if selection == "q" {
//			fmt.Println("已成功退出系统！")
//			return
//		}
//	}
//
//}

// 第一题方法二:使用切片存储名单，每次点完名使用切片的删除操作删除该名单。
func main() {
	var name0 = []string{
		"theshy",
		"rookie",
		"jkl",
		"ning",
		"baolan",
		"xiaohu",
		"crisp",
		"light",
		"weiwei",
		"bin",
		"xun",
		"elk",
		"on",
		"369",
		"tian",
		"meiko",
		"uzi",
		"huangfeng",
		"faker",
		"showmaker",
		"zeus",
		"deft",
		"conyon",
		"doran",
		"penunt",
		"chovy",
		"ruler",
		"berry",
		"oner",
		"keria",
		"viper",
		"kingeen",
		"zeka",
		"clid",
		"bdd",
		"cuzz",
		"aiming",
		"nuosho",
		"kanavi",
		"scout",
		"flander",
		"jiejie",
		"ming",
		"breath",
		"wei",
		"lwx",
		"letme",
		"zitai",
		"leave",
		"zdz",
		"xiaohao",
	}
	var selection string
	for true {
		fmt.Println("按q退出系统，其他任意键开始点名！")
		fmt.Scan(&selection)
		rand.Seed(time.Now().UnixNano())
		x := rand.Intn(len(name0))
		if selection != "q" {
			fmt.Println("这次被点名的同学是：", name0[x])
			name0 = append(name0[:x], name0[x+1:]...)
		} else {
			return
		}
	}
}
